#include <iostream>
using namespace std;
const int N = 1e6 + 10;
int a[N], b[N], c[N];
int la, lb, lc;
// ⽐⼤⼩
bool cmp(string &x, string &y)
{
    // 先⽐较⻓度
    if (x.size() != y.size())
        return x.size() < y.size();
    // 再按照 字典序 的⽅式⽐较
    return x < y;
}
// ⾼精度减法的模板 - c = a - b
void sub(int c[], int a[], int b[])
{
    for (int i = 0; i < lc; i++)
    {
        c[i] += a[i] - b[i]; // 对应位相减，然后处理借位
        if (c[i] < 0)
        {
            c[i + 1] -= 1; // 借位
            c[i] += 10;
        }
    }
    // 处理前导零
    while (lc > 1 && c[lc - 1] == 0)
        lc--;
}
int main()
{
    string x, y;
    cin >> x >> y;
    // ⽐⼤⼩
    if (cmp(x, y))
    {
        swap(x, y);
        cout << '-';
    }
    // 1. 拆分每⼀位，然后逆序放在数组中
    la = x.size();
    lb = y.size();
    lc = max(la, lb);
    for (int i = 0; i < la; i++)
        a[la - i - 1] = x[i] - '0';
    for (int i = 0; i < lb; i++)
        b[lb - i - 1] = y[i] - '0';
    // 2. 模拟减法的过程
    sub(c, a, b); // c = a - b

    // 输出结果
    for (int i = lc - 1; i >= 0; i--)
        cout << c[i];
    return 0;
}